5da6238ef193095b4916afdf11a104616002ca15,plugins/groovy/src/org/jetbrains/plugins/groovy/lang/parser/GroovyParser.java,GroovyParser,parseIfStatement,#PsiBuilder#,126

Before Change


        builder.advanceLexer();
        builder.error(GroovyBundle.message("rparen.expected"));
      }
      if (!ParserUtils.getToken(builder, GroovyTokenTypes.mRPAREN)) {
        ifStmtMarker.done(IF_STATEMENT);
        return true;
      }
    }

    PsiBuilder.Marker warn = builder.mark();
    if (builder.getTokenType() == GroovyTokenTypes.mNLS) {
      ParserUtils.getToken(builder, GroovyTokenTypes.mNLS);
    }

    if (!parseStatement(builder, true) && !parseExtendedStatement(builder)) {
      warn.rollbackTo();
      builder.error(GroovyBundle.message("expression.expected"));
      ifStmtMarker.done(IF_STATEMENT);
      return true;
    } else {
      warn.drop();
    }

    PsiBuilder.Marker rb = builder.mark();
    if (GroovyTokenTypes.kELSE.equals(builder.getTokenType()) ||
        (Separators.parse(builder) &&
            builder.getTokenType() == GroovyTokenTypes.kELSE)) {
      rb.drop();
      ParserUtils.getToken(builder, GroovyTokenTypes.kELSE);

      warn = builder.mark();
      if (builder.getTokenType() == GroovyTokenTypes.mNLS) {
        ParserUtils.getToken(builder, GroovyTokenTypes.mNLS);
      }

      if (!parseStatement(builder, true) && !parseExtendedStatement(builder)) {

After Change


    ParserUtils.getToken(builder, GroovyTokenTypes.mRPAREN, GroovyBundle.message("rparen.expected"));

    PsiBuilder.Marker warn = builder.mark();
    ParserUtils.getToken(builder, GroovyTokenTypes.mNLS);
    if (!parseStatement(builder, true) && !parseExtendedStatement(builder)) {
      warn.rollbackTo();
      builder.error(GroovyBundle.message("expression.expected"));
      ifStmtMarker.done(IF_STATEMENT);
      return true;
    }
    else {
      warn.drop();
    }

    PsiBuilder.Marker rb = builder.mark();
    if (GroovyTokenTypes.kELSE.equals(builder.getTokenType()) ||
        (Separators.parse(builder) && builder.getTokenType() == GroovyTokenTypes.kELSE)) {
      rb.drop();
      ParserUtils.getToken(builder, GroovyTokenTypes.kELSE);

      warn = builder.mark();
      ParserUtils.getToken(builder, GroovyTokenTypes.mNLS);

      if (!parseStatement(builder, true) && !parseExtendedStatement(builder)) {
        warn.rollbackTo();